/* Projekt: tcplayer
 * Datei: PropertyRetriever.java
 * Erstellungsdatum: 29.06.2010 23:14:30
 * Copyright (C) 2010 TdPe Team 21 SS2010 Uni Bielefeld
 */
package properties;


import java.io.BufferedInputStream;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Properties;
/**
 * Bietet einige Zugriffsmöglichkeiten für Properties.
 * Die Properties müssen sich im Ordner .../properties befinden.
 * @author Eugen Medwedew
 */
public class PropertiesRetriever {
    /**
     * Die Property.
     */
    private Properties properties;
    /**
     * Konstruktor für den PropertyRetriever.
     * @param propertyFile ENUM einer Property-Datei.
     */
    public PropertiesRetriever( final EPropertyFile propertyFile ) {
        initProperties( propertyFile.getFilename() );
    }
    /**
     * Liefert eine Property.
     * @return liefert die Property als String
     * @param propertyID Identifier der Property
     */
    public final String getProperty( final String propertyID ) {
        final String property = 
            this.properties.getProperty( propertyID );        
     return property;
    }
    /**
     * Liefert alle Keys der Property.
     * @return Enumeration aller Keys
     */
    public final Enumeration<Object>  getPropertyKeys( ) {
        final Enumeration<Object> property = this.properties.keys(); 
        return property;
    }
    
    /**
     * Initialisiert die Properties.
     * @param propString Der Dateiname der Property (mit Dateiendung)
     * @return Die Properties
     */
    private Properties initProperties( final String propString ) {
        this.properties = new Properties();
        final BufferedInputStream stream = new BufferedInputStream(
            getClass().getResourceAsStream( propString ));
        try {
            this.properties.load( stream );
            stream.close();
        } catch ( final IOException e ) {
            e.printStackTrace();
        }
        return this.properties;
    }

}
